Group Predictions

Row

Win percentage for the week

Season Win Percentage

Games Correct

206

Games Picked

284

Number of predictions

100

Row

This Week’s Predictions
Game Prediction Winner Correct Correct Votes Correct Percent
1 Washington Commanders Philadelphia Eagles No 41 0.41
2 Buffalo Bills Kansas City Chiefs No 44 0.44

Individual Predictions

row

Individual Table

Individual Results
Week 21
Name Weekly # Correct Percent Weeks Picked Season Percent Adj Season Percent Season Trend
Week 1 Week 2 Week 3 Week 4 Week 5 Week 6 Week 7 Week 8 Week 9 Week 10 Week 11 Week 12 Week 13 Week 14 Week 15 Week 16 Week 17 Week 18 Week 19 Week 20 Week 21
Aubrey Conn 13 7 10 9 8 12 12 9 13 9 10 11 16 10 12 12 15 12 3 3 2 1.0 21 0.7324 0.7324
Robert Gelo 14 8 9 9 8 13 13 11 12 10 10 9 12 11 11 13 14 10 2 2 2 1.0 21 0.7148 0.7148
Jason Schattel 13 7 6 9 10 11 9 10 11 9 10 10 13 9 13 12 14 12 4 3 2 1.0 21 0.6937 0.6937
Bryson Scott 10 9 7 NA 7 12 11 12 10 9 NA 9 15 10 10 NA 12 NA NA 3 2 1.0 16 0.6852 0.5221
Bruce Williams 13 9 10 8 9 13 12 10 NA 10 10 9 14 9 12 11 12 6 3 2 2 1.0 20 0.6840 0.6514
Kevin Kehoe 13 7 9 10 8 13 12 11 9 8 8 8 13 9 14 12 12 10 4 2 2 1.0 21 0.6831 0.6831
Heather Ellenberger 13 8 7 8 7 12 11 11 13 9 9 10 14 9 14 11 NA 9 4 2 2 1.0 20 0.6828 0.6503
Pablo Burgosramos 9 5 8 9 5 14 12 12 12 7 11 10 13 10 14 10 14 9 5 NA 2 1.0 20 0.6821 0.6496
Edward Ford 9 7 6 10 5 10 10 13 11 9 12 10 14 11 14 11 12 11 4 2 2 1.0 21 0.6796 0.6796
Daniel Baller 14 6 9 8 7 9 10 12 10 10 10 10 15 10 12 11 12 9 3 3 2 1.0 21 0.6761 0.6761
Stephen Bush 9 7 4 10 9 13 13 9 10 10 8 9 16 10 13 13 13 8 4 2 2 1.0 21 0.6761 0.6761
Shawn Carden 10 9 10 10 8 11 10 11 11 9 8 8 15 9 14 11 NA 8 4 2 2 1.0 20 0.6716 0.6396
Jennifer Arty 10 7 9 7 7 12 8 12 11 9 10 8 15 9 13 10 NA NA NA NA 2 1.0 17 0.6570 0.5319
Montee Brown 10 6 8 7 8 14 11 10 8 10 10 9 14 8 13 11 11 10 4 2 2 1.0 21 0.6549 0.6549
Christopher Mulcahy 11 9 7 8 NA 8 9 9 10 9 10 9 13 11 12 10 12 9 5 3 2 1.0 20 0.6519 0.6209
Steward Hogans 10 7 10 NA NA NA NA 10 13 8 8 9 11 8 11 12 NA 12 3 2 2 1.0 16 0.6507 0.4958
George Brown 14 7 8 7 6 11 10 12 9 12 11 8 12 11 10 7 12 10 3 2 2 1.0 21 0.6479 0.6479
Louie Renew 9 8 12 4 10 8 8 11 11 8 10 9 NA 10 10 13 13 9 5 3 2 1.0 20 0.6455 0.6148
Cheryl Brown 11 6 9 8 8 10 NA 9 8 10 11 9 14 10 10 12 NA 10 3 2 2 1.0 19 0.6403 0.5793
Melissa Printup 8 9 9 6 10 10 10 10 7 10 9 8 13 7 13 11 11 8 2 2 2 1.0 21 0.6162 0.6162
Ryan Shipley 11 6 10 8 5 9 11 NA 10 NA 9 10 NA NA 10 9 NA 9 NA NA 2 1.0 14 0.5980 0.3987
Brittany Pillar NA NA NA NA NA 10 12 NA NA 10 11 10 16 11 13 12 13 7 4 2 1 0.5 14 0.7543 0.5029
Chris Papageorge 14 8 10 11 8 12 12 12 11 8 9 7 15 7 11 11 15 12 4 3 1 0.5 21 0.7077 0.7077
Randy Dick 11 7 8 8 9 14 10 10 13 11 10 9 14 10 12 12 13 10 3 2 1 0.5 21 0.6937 0.6937
Erik Neumann 12 8 9 9 7 13 10 11 12 9 10 NA NA 10 15 11 NA 12 4 2 1 0.5 18 0.6904 0.5918
William Schouviller 12 7 9 9 11 13 10 9 NA 7 11 8 15 11 13 11 11 11 3 2 1 0.5 20 0.6840 0.6514
Thomas Brenstuhl 9 8 NA 6 7 9 10 13 11 9 13 9 15 11 14 NA 12 8 NA 3 1 0.5 18 0.6829 0.5853
Keven Talbert 10 7 9 11 9 14 13 9 9 11 10 10 12 10 10 12 NA 10 3 2 1 0.5 20 0.6791 0.6468
Kevin Buettner 12 8 8 10 7 11 10 9 10 10 10 8 16 10 13 11 NA 10 4 3 1 0.5 20 0.6754 0.6432
Brian Hollmann NA NA NA 8 8 10 10 11 9 8 12 8 16 11 12 10 NA 7 4 3 1 0.5 17 0.6727 0.5446
George Sweet 13 9 6 10 11 9 11 11 12 7 10 11 12 9 12 12 10 8 4 3 1 0.5 21 0.6725 0.6725
Ramar Williams 10 8 7 11 8 11 11 10 8 8 9 8 13 10 12 14 14 11 4 NA 1 0.5 20 0.6714 0.6394
Scott Lefton 10 8 8 7 7 11 11 10 11 10 10 8 15 10 14 11 NA NA 4 3 1 0.5 19 0.6706 0.6067
David Plate 10 8 8 8 9 NA NA NA 13 10 8 9 14 NA 12 11 12 10 4 3 1 0.5 17 0.6637 0.5373
Paul Seitz 11 9 9 NA 8 10 11 NA NA 7 8 8 14 7 14 NA 13 8 4 4 1 0.5 17 0.6606 0.5348
Noah Gosswiller 8 7 NA 10 8 NA 10 11 10 10 10 8 NA 9 14 14 NA NA 3 NA 1 0.5 15 0.6584 0.4703
Michael Moss 13 8 8 8 10 13 8 9 11 9 10 6 11 10 12 12 13 9 3 2 1 0.5 21 0.6549 0.6549
Michelle Fraterrigo 11 8 9 9 7 11 12 12 11 8 8 10 NA 9 NA 11 NA NA NA 3 1 0.5 16 0.6542 0.4984
Daniel Major 8 10 11 6 8 11 NA 10 10 10 11 9 14 11 9 NA 8 NA 4 3 1 0.5 18 0.6498 0.5570
Kamar Morgan 12 6 8 5 8 12 9 12 10 8 10 10 16 10 NA 9 12 9 5 2 1 0.5 20 0.6493 0.6184
Michael Branson 9 8 8 9 8 11 9 11 10 9 11 7 14 9 13 10 11 NA 4 2 1 0.5 20 0.6493 0.6184
Jeffrey Zornes 9 11 6 8 7 10 9 11 9 10 NA 8 15 11 11 9 13 10 5 2 1 0.5 20 0.6481 0.6172
Michael Moore 11 6 7 7 8 12 NA 9 9 NA 12 9 16 10 13 11 NA 8 NA 2 1 0.5 17 0.6481 0.5247
David Humes 10 9 8 11 5 8 12 8 12 11 11 6 14 9 9 12 13 9 4 2 1 0.5 21 0.6479 0.6479
Brian Patterson 11 6 9 9 6 NA 9 13 NA 9 12 7 14 9 13 10 12 8 3 3 1 0.5 19 0.6431 0.5819
Jonathan Smith 11 NA 4 10 7 NA 8 11 10 7 9 7 15 9 15 13 11 8 3 4 1 0.5 19 0.6417 0.5806
Walter Archambo 8 8 7 9 6 12 11 11 12 10 10 9 15 9 9 9 12 8 3 3 1 0.5 21 0.6408 0.6408
Jason Jackson 12 7 5 6 5 12 9 11 10 10 12 9 NA 10 13 12 13 11 2 1 1 0.5 20 0.6381 0.6077
Rachel Follo 15 8 6 6 9 7 10 11 9 9 10 7 13 11 11 8 13 10 4 3 1 0.5 21 0.6373 0.6373
Trevor Macgavin 12 7 10 8 8 8 9 7 10 7 11 10 16 9 12 12 11 8 3 1 1 0.5 21 0.6338 0.6338
Ronald Schmidt 10 10 5 9 6 8 12 10 NA 7 9 10 NA 8 13 11 15 NA 2 2 1 0.5 18 0.6245 0.5353
Terry Hardison 13 8 6 7 4 11 10 12 11 9 11 7 NA NA 11 10 13 8 4 2 1 0.5 19 0.6196 0.5606
Anthony Rockemore 13 8 6 8 7 NA 8 NA NA 9 9 9 12 10 12 9 NA 11 NA 2 1 0.5 16 0.6175 0.4705
Robert Lynch 6 9 8 6 9 7 7 12 NA 9 7 8 15 NA 13 13 11 10 NA 3 1 0.5 18 0.6160 0.5280
Robert Martin 7 NA 9 8 8 8 7 NA 8 7 7 9 11 8 11 13 15 NA 6 2 1 0.5 18 0.6144 0.5266
Megan Fitzgerald 8 11 9 10 NA NA 8 10 NA NA NA 7 13 4 12 NA NA NA 4 3 1 0.5 13 0.6061 0.3752
Jack Wheeler 9 6 5 10 8 NA 9 9 10 8 10 7 15 11 9 11 NA 10 3 2 1 0.5 19 0.6024 0.5450
Steven Webster 7 7 9 6 7 9 NA 11 NA 8 10 8 NA 8 12 12 NA NA 4 4 1 0.5 16 0.5971 0.4549
Richard Conkle 7 6 6 8 7 10 12 11 9 NA 8 NA NA 10 9 NA 12 8 3 3 1 0.5 17 0.5778 0.4677
Min Choi 10 NA 7 NA 8 7 NA 10 NA NA NA NA NA NA NA NA NA NA NA NA 1 0.5 6 0.5513 0.1575
Akilah Gamble 9 NA 12 9 6 8 12 6 NA 8 NA 7 NA NA 3 6 NA NA NA 4 1 0.5 13 0.5291 0.3275
Andrew Gray 5 8 9 7 NA NA 7 9 7 11 8 6 5 10 9 NA 9 8 NA 1 1 0.5 17 0.5128 0.4151
Brenton Jones NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 2 1 0.5 2 0.5000 0.0476
Ashley Johnson 9 NA 6 NA 6 NA NA NA NA NA 5 9 8 NA NA NA NA NA NA NA 1 0.5 7 0.4835 0.1612
Robert Cunningham 14 9 10 12 8 12 11 11 12 9 11 10 NA 10 13 12 14 12 3 2 0 0.0 20 0.7276 0.6930
Michael Pacifico 13 8 7 9 9 12 12 10 14 9 11 10 14 10 12 12 14 12 3 3 0 0.0 21 0.7183 0.7183
Nathan Brown 13 8 9 11 9 NA 10 11 14 9 10 10 14 10 12 12 NA NA 4 NA 0 0.0 17 0.7094 0.5743
Marc Agne 14 7 9 13 6 13 10 9 12 10 10 7 16 9 13 12 13 9 5 3 0 0.0 21 0.7042 0.7042
Jeremy Stieler 11 9 6 11 6 13 11 11 11 9 9 8 16 10 14 13 11 10 5 3 0 0.0 21 0.6937 0.6937
Christopher Sims 11 9 10 8 7 10 12 14 11 9 8 9 16 10 11 11 13 10 4 4 0 0.0 21 0.6937 0.6937
Bradley Hobson 13 7 8 11 7 13 10 10 11 8 NA 10 16 11 14 9 14 10 3 2 0 0.0 20 0.6926 0.6596
Anthony Bloss 13 8 8 11 8 13 11 11 9 7 10 9 14 9 13 12 14 9 3 3 0 0.0 21 0.6866 0.6866
Nicole Dike 13 7 8 10 7 10 10 12 10 9 10 8 15 9 13 13 15 8 4 3 0 0.0 21 0.6831 0.6831
Nicholas Cinco 12 8 NA NA 6 11 11 12 11 11 8 9 12 8 14 11 10 10 5 2 0 0.0 19 0.6786 0.6140
David Dupree 13 8 10 9 7 11 11 11 12 NA 9 8 13 10 12 12 13 9 4 1 0 0.0 20 0.6778 0.6455
Rafael Torres 12 9 8 7 8 10 12 10 12 11 11 7 12 10 NA 11 NA 11 4 3 0 0.0 19 0.6667 0.6032
Ryan Cvik 10 8 9 11 9 11 11 13 10 7 7 9 12 10 13 12 11 9 4 3 0 0.0 21 0.6655 0.6655
Zechariah Ziebarth 8 8 8 10 5 10 10 11 11 NA 12 8 15 10 16 10 NA 9 5 3 0 0.0 19 0.6654 0.6020
Antonio Mitchell 11 7 8 9 9 11 10 11 10 8 8 9 13 9 13 10 13 12 4 2 0 0.0 21 0.6585 0.6585
Cade Martinez 10 7 8 8 6 11 11 9 10 10 9 8 15 11 13 11 14 8 4 4 0 0.0 21 0.6585 0.6585
Jonathon Leslein 10 8 7 10 8 12 10 10 8 10 7 10 12 10 13 12 NA 12 5 2 0 0.0 20 0.6567 0.6254
George Mancini 11 8 6 NA 8 6 12 NA 11 9 11 10 13 11 NA 12 NA 10 NA 2 0 0.0 16 0.6542 0.4984
Richard Beeghley 11 7 6 11 7 14 10 10 10 8 9 9 14 11 12 11 11 9 3 2 0 0.0 21 0.6514 0.6514
Clevante Granville 9 11 NA NA 5 11 11 9 10 11 9 10 NA 8 13 9 11 NA 3 3 0 0.0 17 0.6500 0.5262
Pamela Augustine 14 9 9 NA 7 11 9 NA 10 NA 10 9 14 9 10 10 NA 8 3 2 0 0.0 17 0.6486 0.5251
Nicholas Nguyen 11 8 5 8 7 12 11 9 10 9 10 9 NA 9 16 11 12 NA 3 3 0 0.0 19 0.6468 0.5852
Jeffrey Rudderforth 11 11 10 9 6 7 10 11 12 9 8 8 14 9 11 12 NA 9 4 2 0 0.0 20 0.6455 0.6148
Darvin Graham 12 7 6 9 8 11 9 NA 10 9 9 10 NA 11 14 NA 12 11 4 0 0 0.0 18 0.6441 0.5521
Bunnaro Sun 12 5 8 11 6 8 9 9 12 8 8 NA 14 NA 12 13 13 NA 5 2 0 0.0 18 0.6405 0.5490
Vincent Scannelli 11 7 7 11 8 8 11 12 9 8 9 7 12 NA 11 13 12 11 4 2 0 0.0 20 0.6384 0.6080
James Small 12 NA 9 10 8 10 9 9 10 10 NA 6 11 8 13 11 13 7 4 2 0 0.0 19 0.6378 0.5771
Anthony Brinson 11 7 NA 9 10 11 9 12 6 NA NA 8 14 10 NA 11 11 8 4 1 0 0.0 17 0.6339 0.5132
Wayne Schofield 7 5 9 5 7 7 11 11 10 8 13 10 13 11 NA 13 12 9 5 2 0 0.0 20 0.6269 0.5970
Kristen White 14 7 9 9 8 9 9 8 8 9 9 8 13 8 14 9 10 9 NA 3 0 0.0 20 0.6223 0.5927
Jared Kaanga 11 9 9 8 7 10 9 11 13 9 9 7 NA 11 11 10 NA 8 3 1 0 0.0 19 0.6190 0.5600
Diance Durand 9 9 12 7 8 10 9 11 11 7 9 8 12 NA 11 7 10 11 2 3 0 0.0 20 0.6125 0.5833
Kenneth Nielsen 13 8 7 NA 8 9 11 10 NA NA NA NA 11 NA NA 8 12 NA NA 1 0 0.0 12 0.6087 0.3478
Marcus Evans 11 8 NA 8 7 10 7 9 10 6 11 8 12 8 13 9 11 10 3 2 0 0.0 20 0.6082 0.5792
Gary Lawrence 10 6 5 5 7 9 9 10 9 9 11 8 16 11 11 10 12 8 NA 3 0 0.0 20 0.6079 0.5790
Sheryl Claiborne-Smith 11 7 NA NA NA 7 7 10 7 7 9 9 10 9 NA NA NA 8 NA 2 0 0.0 14 0.5598 0.3732
Clayton Grimes 14 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0 1 0.8750 0.0417
Tanaysa Henderson NA NA NA NA NA 12 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0 1 0.8571 0.0408
Matthew Blair NA NA NA NA NA 11 10 12 10 9 11 8 15 11 15 10 NA NA NA NA NA 0.0 11 0.7531 0.3945
Wallace Savage 12 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0 1 0.7500 0.0357
Brian Holder 12 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0 1 0.7500 0.0357
Sandra Carter 12 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0 1 0.7500 0.0357
Michael Linder 11 9 9 NA NA 12 10 11 10 NA 11 NA 13 NA 14 13 13 NA NA NA NA 0.0 12 0.7312 0.4178
Steven Maisonneuve NA NA NA NA 11 10 11 12 11 8 NA 10 12 9 NA NA NA NA NA NA NA 0.0 9 0.7231 0.3099
Chester Todd 13 8 8 8 9 13 13 10 9 9 11 9 15 10 12 13 14 NA 3 2 NA 0.0 19 0.7105 0.6428
Patrick Tynan 12 8 7 9 8 12 NA 12 12 10 10 6 16 11 13 NA 12 12 NA NA NA 0.0 16 0.7054 0.5374
Randolph Tidd 11 7 8 12 NA 12 11 12 13 9 11 7 16 10 11 12 NA 8 NA NA NA 0.0 16 0.7025 0.5352
Gregory Brown 15 7 6 9 8 12 9 9 13 9 10 9 15 12 13 12 NA NA NA NA NA 0.0 16 0.7000 0.5333
Heather Kohler 12 NA 7 12 9 11 NA 12 NA 8 9 10 14 NA NA NA NA NA 4 NA NA 0.0 11 0.6968 0.3650
Jeremy Krammes 12 NA NA NA NA NA NA 10 NA 10 NA NA NA NA NA NA NA NA NA NA NA 0.0 3 0.6957 0.0994
Jeremy Mounce 12 8 8 NA 10 12 NA NA NA 10 10 NA NA NA 14 NA NA NA NA 2 NA 0.0 9 0.6935 0.2972
Terrence Lee 11 NA NA NA NA NA NA NA NA NA NA 9 NA NA NA NA NA NA NA NA NA 0.0 2 0.6897 0.0657
Daniel Gray 11 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0 1 0.6875 0.0327
Karen Coleman 13 6 NA 11 9 9 10 9 11 8 9 9 14 10 14 11 NA NA NA NA NA 0.0 15 0.6830 0.4879
Jennifer Bouland 13 8 10 7 8 11 10 11 9 9 12 10 NA 11 11 NA 13 10 NA 3 NA 0.0 17 0.6803 0.5507
Ryan Wiggins NA NA NA NA NA NA NA NA 11 NA NA NA NA NA NA 10 NA NA NA NA NA 0.0 2 0.6774 0.0645
Matthew Schultz 13 10 9 8 9 9 9 12 11 8 11 10 14 9 11 9 11 NA NA NA NA 0.0 17 0.6758 0.5471
Philip Driskill 12 7 8 10 8 NA 13 11 10 NA NA 9 14 10 NA NA NA 10 NA 3 NA 0.0 13 0.6720 0.4160
Robert Sokol 10 8 NA NA 6 9 9 13 12 9 10 8 14 10 NA NA NA NA NA NA NA 0.0 12 0.6705 0.3831
Brayant Rivera 10 8 9 8 6 13 11 10 12 9 11 10 13 10 14 8 10 10 4 NA NA 0.0 19 0.6691 0.6054
Darryle Sellers 11 11 6 8 9 11 9 10 12 9 12 7 15 9 NA 12 NA 9 NA 3 NA 0.0 17 0.6680 0.5408
Earl Dixon 10 9 6 9 9 NA 11 10 9 9 10 10 15 11 10 12 NA NA 4 NA NA 0.0 16 0.6638 0.5058
Travis Delagardelle 11 12 10 8 6 11 12 11 11 9 9 NA NA NA NA NA NA NA NA NA NA 0.0 11 0.6627 0.3471
Daniel Halse 12 6 8 10 7 13 9 11 11 11 NA 8 14 9 12 12 NA 7 NA NA NA 0.0 16 0.6612 0.5038
Shaun Dahl 14 7 9 11 10 10 10 8 9 11 8 11 12 11 12 8 NA 8 NA NA NA 0.0 17 0.6602 0.5344
Ryan Baum 14 4 9 10 9 NA 10 10 11 10 NA 8 14 8 NA 12 NA NA NA NA NA 0.0 13 0.6582 0.4075
Karen Richardson 10 9 7 9 11 8 8 12 8 10 9 9 13 10 14 12 NA 9 4 3 NA 0.0 19 0.6579 0.5952
George Hall 12 NA 8 NA NA NA NA NA NA 10 NA NA NA NA NA NA NA NA NA NA NA 0.0 3 0.6522 0.0932
Brandon Parks 12 6 9 9 6 13 NA NA 12 10 10 6 NA 8 12 9 13 NA 4 NA NA 0.0 15 0.6465 0.4618
Nahir Shepard 11 8 10 8 6 12 8 12 9 9 11 10 13 9 NA 9 9 11 NA NA NA 0.0 17 0.6445 0.5217
Joshua Tracey 12 5 8 6 7 NA 9 13 10 7 10 9 16 9 13 11 NA NA NA NA NA 0.0 15 0.6416 0.4583
Thomas Mccoy 10 7 6 8 9 11 11 10 12 10 10 8 13 9 11 10 10 8 NA NA NA 0.0 18 0.6360 0.5451
Paul Presti 12 8 9 12 7 11 8 10 NA 10 9 NA NA NA NA NA NA NA NA NA NA 0.0 10 0.6358 0.3028
Amy Asberry 11 8 6 10 NA 12 9 NA 9 8 NA NA 13 9 11 NA NA NA NA NA NA 0.0 11 0.6347 0.3325
Tara Bridgett 11 8 8 8 NA 9 NA 10 10 NA NA NA 15 NA NA NA NA NA NA NA NA 0.0 8 0.6320 0.2408
Yiming Hu 12 NA 7 7 6 8 12 9 NA 9 12 8 11 NA 12 NA NA NA NA NA NA 0.0 12 0.6278 0.3587
Matthew Olguin 10 8 9 9 7 12 11 11 9 7 8 5 14 9 12 12 7 NA 3 NA NA 0.0 18 0.6221 0.5332
Desmond Jenkins 10 7 7 NA 7 12 8 NA NA NA NA NA 15 NA NA NA NA NA NA NA NA 0.0 7 0.6168 0.2056
Jordan Forwood 11 8 6 11 NA 13 NA 10 NA NA NA NA NA NA NA NA NA NA NA 1 NA 0.0 7 0.6122 0.2041
Jose Torres Mendoza 12 8 8 8 NA NA 8 9 10 11 8 7 NA 10 NA 11 NA NA NA NA NA 0.0 12 0.6111 0.3492
David Hadley 13 10 8 NA 8 NA 8 NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0 5 0.6104 0.1453
Keisha Vasquez 8 7 9 9 11 11 9 12 8 8 NA NA 14 NA NA 9 NA 7 NA NA NA 0.0 13 0.6100 0.3776
Kyle May 10 8 5 6 8 NA 12 10 9 8 8 8 13 7 13 12 NA NA NA 3 NA 0.0 16 0.6087 0.4638
Wayne Gokey 13 7 NA 11 NA NA 8 NA 8 NA NA NA NA NA NA NA NA NA NA NA NA 0.0 5 0.6026 0.1435
Jonathan Knight 13 10 9 6 7 NA 11 NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0 6 0.6022 0.1721
Kevin Green 11 9 NA 8 7 12 NA 8 NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0 6 0.5978 0.1708
Derrick Elam 13 9 8 11 7 10 8 9 NA NA NA 7 NA 7 NA NA NA NA NA NA NA 0.0 10 0.5973 0.2844
Jeffrey Dusza 11 8 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0 2 0.5938 0.0566
Cherylynn Vidal 13 9 8 8 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0 4 0.5938 0.1131
Adam Konkle 10 9 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0 2 0.5938 0.0566
Thomas Cho 10 6 NA 11 7 12 NA 8 9 NA NA NA NA NA NA NA NA NA NA NA NA 0.0 7 0.5888 0.1963
Jason Miranda 10 7 8 NA 9 11 8 NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0 6 0.5824 0.1664
Jennifer Wilson 11 9 10 6 NA 7 11 NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0 6 0.5806 0.1659
Joseph Martin 10 7 8 8 8 10 9 NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0 7 0.5607 0.1869
Lawrence Thuotte 9 5 12 NA 8 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0 4 0.5484 0.1045
Donald Park 9 NA 6 NA NA 10 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0 3 0.5435 0.0776
Gabriel Quinones 10 7 6 9 NA 11 8 7 NA NA NA 6 NA 9 NA NA NA NA NA NA NA 0.0 9 0.5407 0.2317
Monte Henderson 9 8 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0 2 0.5312 0.0506
David Kim 9 8 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0 2 0.5312 0.0506
Jamie Ainsleigh-Wong 9 8 9 9 8 5 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0 6 0.5217 0.1491
Jay Kelly 10 9 7 7 5 10 7 NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0 7 0.5140 0.1713
Zachary Brosemer 8 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0 1 0.5000 0.0238
Antonio Chapa 8 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0 1 0.5000 0.0238
Vincent Kandian 9 8 8 7 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0 4 0.5000 0.0952
Ashlyn Dortch 9 NA NA 8 NA 5 9 6 NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0 5 0.4805 0.1144
Gabrieal Feiling 10 NA 5 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 2 NA NA 0.0 3 0.4474 0.0639
Jasprin Smith 6 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0 1 0.3750 0.0179
Robert Epps NA 6 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0 1 0.3750 0.0179

Season Leaderboard

Season Leaderboard (Season Percent)
Week 21
Season Rank Name Donuts Won Weeks Picked Season Percent Adj Season Percent Season Trend
1 Clayton Grimes 0 1 0.8750 0.0417
2 Tanaysa Henderson 0 1 0.8571 0.0408
3 Brittany Pillar 1 14 0.7543 0.5029
4 Matthew Blair 0 11 0.7531 0.3945
5 Brian Holder 0 1 0.7500 0.0357
5 Sandra Carter 0 1 0.7500 0.0357
5 Wallace Savage 0 1 0.7500 0.0357
8 Aubrey Conn 5 21 0.7324 0.7324
9 Michael Linder 0 12 0.7312 0.4178
10 Robert Cunningham 1 20 0.7276 0.6930
11 Steven Maisonneuve 1 9 0.7231 0.3099
12 Michael Pacifico 2 21 0.7183 0.7183
13 Robert Gelo 2 21 0.7148 0.7148
14 Chester Todd 1 19 0.7105 0.6428
15 Nathan Brown 1 17 0.7094 0.5743
16 Chris Papageorge 2 21 0.7077 0.7077
17 Patrick Tynan 2 16 0.7054 0.5374
18 Marc Agne 2 21 0.7042 0.7042
19 Randolph Tidd 1 16 0.7025 0.5352
20 Gregory Brown 2 16 0.7000 0.5333
21 Heather Kohler 0 11 0.6968 0.3650
22 Jeremy Krammes 0 3 0.6957 0.0994
23 Christopher Sims 3 21 0.6937 0.6937
23 Jason Schattel 2 21 0.6937 0.6937
23 Jeremy Stieler 1 21 0.6937 0.6937
23 Randy Dick 1 21 0.6937 0.6937
27 Jeremy Mounce 0 9 0.6935 0.2972
28 Bradley Hobson 1 20 0.6926 0.6596
29 Erik Neumann 1 18 0.6904 0.5918
30 Terrence Lee 0 2 0.6897 0.0657
31 Daniel Gray 0 1 0.6875 0.0327
32 Anthony Bloss 0 21 0.6866 0.6866
33 Bryson Scott 1 16 0.6852 0.5221
34 Bruce Williams 1 20 0.6840 0.6514
34 William Schouviller 1 20 0.6840 0.6514
36 Kevin Kehoe 1 21 0.6831 0.6831
36 Nicole Dike 1 21 0.6831 0.6831
38 Karen Coleman 0 15 0.6830 0.4879
39 Thomas Brenstuhl 1 18 0.6829 0.5853
40 Heather Ellenberger 1 20 0.6828 0.6503
41 Pablo Burgosramos 2 20 0.6821 0.6496
42 Jennifer Bouland 0 17 0.6803 0.5507
43 Edward Ford 1 21 0.6796 0.6796
44 Keven Talbert 2 20 0.6791 0.6468
45 Nicholas Cinco 0 19 0.6786 0.6140
46 David Dupree 0 20 0.6778 0.6455
47 Ryan Wiggins 0 2 0.6774 0.0645
48 Daniel Baller 1 21 0.6761 0.6761
48 Stephen Bush 3 21 0.6761 0.6761
50 Matthew Schultz 0 17 0.6758 0.5471
51 Kevin Buettner 1 20 0.6754 0.6432
52 Brian Hollmann 1 17 0.6727 0.5446
53 George Sweet 2 21 0.6725 0.6725
54 Philip Driskill 1 13 0.6720 0.4160
55 Shawn Carden 1 20 0.6716 0.6396
56 Ramar Williams 1 20 0.6714 0.6394
57 Scott Lefton 0 19 0.6706 0.6067
58 Robert Sokol 0 12 0.6705 0.3831
59 Brayant Rivera 0 19 0.6691 0.6054
60 Darryle Sellers 0 17 0.6680 0.5408
61 Rafael Torres 0 19 0.6667 0.6032
62 Ryan Cvik 0 21 0.6655 0.6655
63 Zechariah Ziebarth 1 19 0.6654 0.6020
64 Earl Dixon 0 16 0.6638 0.5058
65 David Plate 0 17 0.6637 0.5373
66 Travis Delagardelle 1 11 0.6627 0.3471
67 Daniel Halse 0 16 0.6612 0.5038
68 Paul Seitz 1 17 0.6606 0.5348
69 Shaun Dahl 1 17 0.6602 0.5344
70 Antonio Mitchell 1 21 0.6585 0.6585
70 Cade Martinez 1 21 0.6585 0.6585
72 Noah Gosswiller 1 15 0.6584 0.4703
73 Ryan Baum 0 13 0.6582 0.4075
74 Karen Richardson 1 19 0.6579 0.5952
75 Jennifer Arty 1 17 0.6570 0.5319
76 Jonathon Leslein 1 20 0.6567 0.6254
77 Michael Moss 0 21 0.6549 0.6549
77 Montee Brown 2 21 0.6549 0.6549
79 George Mancini 0 16 0.6542 0.4984
79 Michelle Fraterrigo 0 16 0.6542 0.4984
81 George Hall 0 3 0.6522 0.0932
82 Christopher Mulcahy 1 20 0.6519 0.6209
83 Richard Beeghley 1 21 0.6514 0.6514
84 Steward Hogans 2 16 0.6507 0.4958
85 Clevante Granville 0 17 0.6500 0.5262
86 Daniel Major 0 18 0.6498 0.5570
87 Kamar Morgan 1 20 0.6493 0.6184
87 Michael Branson 0 20 0.6493 0.6184
89 Pamela Augustine 0 17 0.6486 0.5251
90 Jeffrey Zornes 0 20 0.6481 0.6172
90 Michael Moore 1 17 0.6481 0.5247
92 David Humes 0 21 0.6479 0.6479
92 George Brown 2 21 0.6479 0.6479
94 Nicholas Nguyen 1 19 0.6468 0.5852
95 Brandon Parks 0 15 0.6465 0.4618
96 Jeffrey Rudderforth 0 20 0.6455 0.6148
96 Louie Renew 2 20 0.6455 0.6148
98 Nahir Shepard 0 17 0.6445 0.5217
99 Darvin Graham 0 18 0.6441 0.5521
100 Brian Patterson 0 19 0.6431 0.5819
101 Jonathan Smith 1 19 0.6417 0.5806
102 Joshua Tracey 1 15 0.6416 0.4583
103 Walter Archambo 0 21 0.6408 0.6408
104 Bunnaro Sun 0 18 0.6405 0.5490
105 Cheryl Brown 1 19 0.6403 0.5793
106 Vincent Scannelli 0 20 0.6384 0.6080
107 Jason Jackson 0 20 0.6381 0.6077
108 James Small 0 19 0.6378 0.5771
109 Rachel Follo 1 21 0.6373 0.6373
110 Thomas Mccoy 0 18 0.6360 0.5451
111 Paul Presti 0 10 0.6358 0.3028
112 Amy Asberry 0 11 0.6347 0.3325
113 Anthony Brinson 0 17 0.6339 0.5132
114 Trevor Macgavin 1 21 0.6338 0.6338
115 Tara Bridgett 0 8 0.6320 0.2408
116 Yiming Hu 0 12 0.6278 0.3587
117 Wayne Schofield 1 20 0.6269 0.5970
118 Ronald Schmidt 1 18 0.6245 0.5353
119 Kristen White 0 20 0.6223 0.5927
120 Matthew Olguin 0 18 0.6221 0.5332
121 Terry Hardison 0 19 0.6196 0.5606
122 Jared Kaanga 0 19 0.6190 0.5600
123 Anthony Rockemore 0 16 0.6175 0.4705
124 Desmond Jenkins 0 7 0.6168 0.2056
125 Melissa Printup 1 21 0.6162 0.6162
126 Robert Lynch 0 18 0.6160 0.5280
127 Robert Martin 2 18 0.6144 0.5266
128 Diance Durand 1 20 0.6125 0.5833
129 Jordan Forwood 0 7 0.6122 0.2041
130 Jose Torres Mendoza 0 12 0.6111 0.3492
131 David Hadley 0 5 0.6104 0.1453
132 Keisha Vasquez 1 13 0.6100 0.3776
133 Kenneth Nielsen 0 12 0.6087 0.3478
133 Kyle May 0 16 0.6087 0.4638
135 Marcus Evans 0 20 0.6082 0.5792
136 Gary Lawrence 1 20 0.6079 0.5790
137 Megan Fitzgerald 0 13 0.6061 0.3752
138 Wayne Gokey 0 5 0.6026 0.1435
139 Jack Wheeler 0 19 0.6024 0.5450
140 Jonathan Knight 0 6 0.6022 0.1721
141 Ryan Shipley 1 14 0.5980 0.3987
142 Kevin Green 0 6 0.5978 0.1708
143 Derrick Elam 0 10 0.5973 0.2844
144 Steven Webster 1 16 0.5971 0.4549
145 Adam Konkle 0 2 0.5938 0.0566
145 Cherylynn Vidal 0 4 0.5938 0.1131
145 Jeffrey Dusza 0 2 0.5938 0.0566
148 Thomas Cho 0 7 0.5888 0.1963
149 Jason Miranda 0 6 0.5824 0.1664
150 Jennifer Wilson 0 6 0.5806 0.1659
151 Richard Conkle 0 17 0.5778 0.4677
152 Joseph Martin 0 7 0.5607 0.1869
153 Sheryl Claiborne-Smith 0 14 0.5598 0.3732
154 Min Choi 0 6 0.5513 0.1575
155 Lawrence Thuotte 1 4 0.5484 0.1045
156 Donald Park 0 3 0.5435 0.0776
157 Gabriel Quinones 0 9 0.5407 0.2317
158 David Kim 0 2 0.5312 0.0506
158 Monte Henderson 0 2 0.5312 0.0506
160 Akilah Gamble 2 13 0.5291 0.3275
161 Jamie Ainsleigh-Wong 0 6 0.5217 0.1491
162 Jay Kelly 0 7 0.5140 0.1713
163 Andrew Gray 0 17 0.5128 0.4151
164 Antonio Chapa 0 1 0.5000 0.0238
164 Brenton Jones 0 2 0.5000 0.0476
164 Vincent Kandian 0 4 0.5000 0.0952
164 Zachary Brosemer 0 1 0.5000 0.0238
168 Ashley Johnson 0 7 0.4835 0.1612
169 Ashlyn Dortch 0 5 0.4805 0.1144
170 Gabrieal Feiling 0 3 0.4474 0.0639
171 Jasprin Smith 0 1 0.3750 0.0179
171 Robert Epps 0 1 0.3750 0.0179

Adjusted Season Leaderboard

Season Leaderboard (Adjusted Season Percent)
Week 21
Season Rank Name Donuts Won Weeks Picked Season Percent Adj Season Percent Season Trend
1 Aubrey Conn 5 21 0.7324 0.7324
2 Michael Pacifico 2 21 0.7183 0.7183
3 Robert Gelo 2 21 0.7148 0.7148
4 Chris Papageorge 2 21 0.7077 0.7077
5 Marc Agne 2 21 0.7042 0.7042
6 Christopher Sims 3 21 0.6937 0.6937
6 Jason Schattel 2 21 0.6937 0.6937
6 Jeremy Stieler 1 21 0.6937 0.6937
6 Randy Dick 1 21 0.6937 0.6937
10 Robert Cunningham 1 20 0.7276 0.6930
11 Anthony Bloss 0 21 0.6866 0.6866
12 Kevin Kehoe 1 21 0.6831 0.6831
12 Nicole Dike 1 21 0.6831 0.6831
14 Edward Ford 1 21 0.6796 0.6796
15 Daniel Baller 1 21 0.6761 0.6761
15 Stephen Bush 3 21 0.6761 0.6761
17 George Sweet 2 21 0.6725 0.6725
18 Ryan Cvik 0 21 0.6655 0.6655
19 Bradley Hobson 1 20 0.6926 0.6596
20 Antonio Mitchell 1 21 0.6585 0.6585
20 Cade Martinez 1 21 0.6585 0.6585
22 Michael Moss 0 21 0.6549 0.6549
22 Montee Brown 2 21 0.6549 0.6549
24 Bruce Williams 1 20 0.6840 0.6514
24 Richard Beeghley 1 21 0.6514 0.6514
24 William Schouviller 1 20 0.6840 0.6514
27 Heather Ellenberger 1 20 0.6828 0.6503
28 Pablo Burgosramos 2 20 0.6821 0.6496
29 David Humes 0 21 0.6479 0.6479
29 George Brown 2 21 0.6479 0.6479
31 Keven Talbert 2 20 0.6791 0.6468
32 David Dupree 0 20 0.6778 0.6455
33 Kevin Buettner 1 20 0.6754 0.6432
34 Chester Todd 1 19 0.7105 0.6428
35 Walter Archambo 0 21 0.6408 0.6408
36 Shawn Carden 1 20 0.6716 0.6396
37 Ramar Williams 1 20 0.6714 0.6394
38 Rachel Follo 1 21 0.6373 0.6373
39 Trevor Macgavin 1 21 0.6338 0.6338
40 Jonathon Leslein 1 20 0.6567 0.6254
41 Christopher Mulcahy 1 20 0.6519 0.6209
42 Kamar Morgan 1 20 0.6493 0.6184
42 Michael Branson 0 20 0.6493 0.6184
44 Jeffrey Zornes 0 20 0.6481 0.6172
45 Melissa Printup 1 21 0.6162 0.6162
46 Jeffrey Rudderforth 0 20 0.6455 0.6148
46 Louie Renew 2 20 0.6455 0.6148
48 Nicholas Cinco 0 19 0.6786 0.6140
49 Vincent Scannelli 0 20 0.6384 0.6080
50 Jason Jackson 0 20 0.6381 0.6077
51 Scott Lefton 0 19 0.6706 0.6067
52 Brayant Rivera 0 19 0.6691 0.6054
53 Rafael Torres 0 19 0.6667 0.6032
54 Zechariah Ziebarth 1 19 0.6654 0.6020
55 Wayne Schofield 1 20 0.6269 0.5970
56 Karen Richardson 1 19 0.6579 0.5952
57 Kristen White 0 20 0.6223 0.5927
58 Erik Neumann 1 18 0.6904 0.5918
59 Thomas Brenstuhl 1 18 0.6829 0.5853
60 Nicholas Nguyen 1 19 0.6468 0.5852
61 Diance Durand 1 20 0.6125 0.5833
62 Brian Patterson 0 19 0.6431 0.5819
63 Jonathan Smith 1 19 0.6417 0.5806
64 Cheryl Brown 1 19 0.6403 0.5793
65 Marcus Evans 0 20 0.6082 0.5792
66 Gary Lawrence 1 20 0.6079 0.5790
67 James Small 0 19 0.6378 0.5771
68 Nathan Brown 1 17 0.7094 0.5743
69 Terry Hardison 0 19 0.6196 0.5606
70 Jared Kaanga 0 19 0.6190 0.5600
71 Daniel Major 0 18 0.6498 0.5570
72 Darvin Graham 0 18 0.6441 0.5521
73 Jennifer Bouland 0 17 0.6803 0.5507
74 Bunnaro Sun 0 18 0.6405 0.5490
75 Matthew Schultz 0 17 0.6758 0.5471
76 Thomas Mccoy 0 18 0.6360 0.5451
77 Jack Wheeler 0 19 0.6024 0.5450
78 Brian Hollmann 1 17 0.6727 0.5446
79 Darryle Sellers 0 17 0.6680 0.5408
80 Patrick Tynan 2 16 0.7054 0.5374
81 David Plate 0 17 0.6637 0.5373
82 Ronald Schmidt 1 18 0.6245 0.5353
83 Randolph Tidd 1 16 0.7025 0.5352
84 Paul Seitz 1 17 0.6606 0.5348
85 Shaun Dahl 1 17 0.6602 0.5344
86 Gregory Brown 2 16 0.7000 0.5333
87 Matthew Olguin 0 18 0.6221 0.5332
88 Jennifer Arty 1 17 0.6570 0.5319
89 Robert Lynch 0 18 0.6160 0.5280
90 Robert Martin 2 18 0.6144 0.5266
91 Clevante Granville 0 17 0.6500 0.5262
92 Pamela Augustine 0 17 0.6486 0.5251
93 Michael Moore 1 17 0.6481 0.5247
94 Bryson Scott 1 16 0.6852 0.5221
95 Nahir Shepard 0 17 0.6445 0.5217
96 Anthony Brinson 0 17 0.6339 0.5132
97 Earl Dixon 0 16 0.6638 0.5058
98 Daniel Halse 0 16 0.6612 0.5038
99 Brittany Pillar 1 14 0.7543 0.5029
100 George Mancini 0 16 0.6542 0.4984
100 Michelle Fraterrigo 0 16 0.6542 0.4984
102 Steward Hogans 2 16 0.6507 0.4958
103 Karen Coleman 0 15 0.6830 0.4879
104 Anthony Rockemore 0 16 0.6175 0.4705
105 Noah Gosswiller 1 15 0.6584 0.4703
106 Richard Conkle 0 17 0.5778 0.4677
107 Kyle May 0 16 0.6087 0.4638
108 Brandon Parks 0 15 0.6465 0.4618
109 Joshua Tracey 1 15 0.6416 0.4583
110 Steven Webster 1 16 0.5971 0.4549
111 Michael Linder 0 12 0.7312 0.4178
112 Philip Driskill 1 13 0.6720 0.4160
113 Andrew Gray 0 17 0.5128 0.4151
114 Ryan Baum 0 13 0.6582 0.4075
115 Ryan Shipley 1 14 0.5980 0.3987
116 Matthew Blair 0 11 0.7531 0.3945
117 Robert Sokol 0 12 0.6705 0.3831
118 Keisha Vasquez 1 13 0.6100 0.3776
119 Megan Fitzgerald 0 13 0.6061 0.3752
120 Sheryl Claiborne-Smith 0 14 0.5598 0.3732
121 Heather Kohler 0 11 0.6968 0.3650
122 Yiming Hu 0 12 0.6278 0.3587
123 Jose Torres Mendoza 0 12 0.6111 0.3492
124 Kenneth Nielsen 0 12 0.6087 0.3478
125 Travis Delagardelle 1 11 0.6627 0.3471
126 Amy Asberry 0 11 0.6347 0.3325
127 Akilah Gamble 2 13 0.5291 0.3275
128 Steven Maisonneuve 1 9 0.7231 0.3099
129 Paul Presti 0 10 0.6358 0.3028
130 Jeremy Mounce 0 9 0.6935 0.2972
131 Derrick Elam 0 10 0.5973 0.2844
132 Tara Bridgett 0 8 0.6320 0.2408
133 Gabriel Quinones 0 9 0.5407 0.2317
134 Desmond Jenkins 0 7 0.6168 0.2056
135 Jordan Forwood 0 7 0.6122 0.2041
136 Thomas Cho 0 7 0.5888 0.1963
137 Joseph Martin 0 7 0.5607 0.1869
138 Jonathan Knight 0 6 0.6022 0.1721
139 Jay Kelly 0 7 0.5140 0.1713
140 Kevin Green 0 6 0.5978 0.1708
141 Jason Miranda 0 6 0.5824 0.1664
142 Jennifer Wilson 0 6 0.5806 0.1659
143 Ashley Johnson 0 7 0.4835 0.1612
144 Min Choi 0 6 0.5513 0.1575
145 Jamie Ainsleigh-Wong 0 6 0.5217 0.1491
146 David Hadley 0 5 0.6104 0.1453
147 Wayne Gokey 0 5 0.6026 0.1435
148 Ashlyn Dortch 0 5 0.4805 0.1144
149 Cherylynn Vidal 0 4 0.5938 0.1131
150 Lawrence Thuotte 1 4 0.5484 0.1045
151 Jeremy Krammes 0 3 0.6957 0.0994
152 Vincent Kandian 0 4 0.5000 0.0952
153 George Hall 0 3 0.6522 0.0932
154 Donald Park 0 3 0.5435 0.0776
155 Terrence Lee 0 2 0.6897 0.0657
156 Ryan Wiggins 0 2 0.6774 0.0645
157 Gabrieal Feiling 0 3 0.4474 0.0639
158 Adam Konkle 0 2 0.5938 0.0566
158 Jeffrey Dusza 0 2 0.5938 0.0566
160 David Kim 0 2 0.5312 0.0506
160 Monte Henderson 0 2 0.5312 0.0506
162 Brenton Jones 0 2 0.5000 0.0476
163 Clayton Grimes 0 1 0.8750 0.0417
164 Tanaysa Henderson 0 1 0.8571 0.0408
165 Brian Holder 0 1 0.7500 0.0357
165 Sandra Carter 0 1 0.7500 0.0357
165 Wallace Savage 0 1 0.7500 0.0357
168 Daniel Gray 0 1 0.6875 0.0327
169 Antonio Chapa 0 1 0.5000 0.0238
169 Zachary Brosemer 0 1 0.5000 0.0238
171 Jasprin Smith 0 1 0.3750 0.0179
171 Robert Epps 0 1 0.3750 0.0179

Data

---
title: "2024 NFL Moneyline Picks"
output: 
  flexdashboard::flex_dashboard:
    theme:
      version: 4
      bootswatch: spacelab
    orientation: rows
    vertical_layout: fill
    social: ["menu"]
    source_code: embed
    navbar:
      - { title: "Created by: Daniel Baller", icon: "fa-github", href: "https://github.com/danielpballer"  }
---


```{r setup, include=FALSE}
#    source_code: embed
library(flexdashboard)
library(tidyverse)
library(data.table)
library(formattable)
library(ggpubr)
library(ggrepel)
library(gt)
library(glue)
library(ggthemes)
library(hrbrthemes)
library(sparkline)
library(plotly)
library(htmlwidgets)
library(mdthemes)
library(ggtext)
library(ggnewscale)
library(DT)
source("./Functions/functions2.R")

thematic::thematic_rmd(font = "auto")

# Remove line 211 before next season.
```

```{r Reading in our picks files, include=FALSE}
current_week = 21 #Set what week it is
week_1 = read_csv("./CSV_Data_Files/2024 NFL Week 1.csv") %>% 
  mutate(Name = str_to_title(Name))
week_2 = read_csv("./CSV_Data_Files/2024 NFL Week 2.csv")%>% 
  mutate(Name = str_to_title(Name))
week_3 = read_csv("./CSV_Data_Files/2024 NFL Week 3.csv")%>% 
  mutate(Name = str_to_title(Name))
week_4 = read_csv("./CSV_Data_Files/2024 NFL Week 4.csv")%>%
 mutate(Name = str_to_title(Name))
week_5 = read_csv("./CSV_Data_Files/2024 NFL Week 5.csv")%>% 
  mutate(Name = str_to_title(Name))
week_6 = read_csv("./CSV_Data_Files/2024 NFL Week 6.csv")%>% 
  mutate(Name = str_to_title(Name))
week_7 = read_csv("./CSV_Data_Files/2024 NFL Week 7.csv")%>% 
  mutate(Name = str_to_title(Name))
week_8 = read_csv("./CSV_Data_Files/2024 NFL Week 8.csv")%>% 
  mutate(Name = str_to_title(Name))
 week_9 = read_csv("./CSV_Data_Files/2024 NFL Week 9.csv")%>% 
  mutate(Name = str_to_title(Name))
week_10 = read_csv("./CSV_Data_Files/2024 NFL Week 10.csv")%>% 
  mutate(Name = str_to_title(Name))
week_11 = read_csv("./CSV_Data_Files/2024 NFL Week 11.csv")%>% 
  mutate(Name = str_to_title(Name))
week_12 = read_csv("./CSV_Data_Files/2024 NFL Week 12.csv")%>% 
  mutate(Name = str_to_title(Name))
week_13 = read_csv("./CSV_Data_Files/2024 NFL Week 13.csv")%>% 
  mutate(Name = str_to_title(Name))
week_14 = read_csv("./CSV_Data_Files/2024 NFL Week 14.csv")%>% 
  mutate(Name = str_to_title(Name))
week_15 = read_csv("./CSV_Data_Files/2024 NFL Week 15.csv")%>% 
  mutate(Name = str_to_title(Name))
week_16 = read_csv("./CSV_Data_Files/2024 NFL Week 16.csv")%>% 
  mutate(Name = str_to_title(Name))
week_17 = read_csv("./CSV_Data_Files/2024 NFL Week 17.csv")%>% 
  mutate(Name = str_to_title(Name))
week_18 = read_csv("./CSV_Data_Files/2024 NFL Week 18.csv")%>% 
  mutate(Name = str_to_title(Name))
week_19 = read_csv("./CSV_Data_Files/2024 NFL Wild Card.csv")%>% 
  mutate(Name = str_to_title(Name))
week_20 = read_csv("./CSV_Data_Files/2024 NFL Divisional Week.csv")%>% 
  mutate(Name = str_to_title(Name))
week_21 = read_csv("./CSV_Data_Files/2024 NFL Conference Round.csv")%>% 
mutate(Name = str_to_title(Name))
# week_22 = read_csv("./CSV_Data_Files/2024 NFL Super Bowl.csv")%>% 
#  mutate(Name = str_to_title(Name))

#reading in scores
Scores = read_csv(glue::glue("./CSV_Data_Files/NFL_Scores_{current_week}.csv")) 

#reading in CBS Prediction Records
cbs = read_csv(glue::glue("./CSV_Data_Files/CBS_Experts_{current_week}.csv")) %>% 
  mutate(Percent = round(Percent,4))
cbs_season = read_csv(glue::glue("./CSV_Data_Files/CBS_Experts_Season_{current_week}.csv"))

#reading in ESPN Prediction Records
espn = read_csv(glue::glue("./CSV_Data_Files/ESPN_Experts_{current_week}.csv"))%>% 
  mutate(Percent = round(Percent,4))
espn_season = read_csv(glue::glue("./CSV_Data_Files/ESPN_Experts_Season_{current_week}.csv"))%>% 
  mutate(Percent = round(Percent,4))

#Odds not working for the 2024 season.  Need to fix scrape code for next year.
#Reading in the moneyline odds for each team and cleaning the team names
# odds_wk1 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_1.csv"))
# odds_wk2 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_2.csv"))
# odds_wk3 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_3.csv"))
# odds_wk4 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_4.csv"))
# odds_wk5 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_5.csv"))
# odds_wk6 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_6.csv"))
# odds_wk7 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_7.csv"))
# odds_wk8 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_8.csv"))
# odds_wk9 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_9.csv"))
# odds_wk10 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_10.csv"))
# odds_wk11 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_11.csv"))
# odds_wk12 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_12.csv"))
# odds_wk13 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_13.csv"))
# odds_wk14 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_14.csv"))
# odds_wk15 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_15.csv"))
# odds_wk16 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_16.csv"))
# odds_wk17 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_17.csv"))
# odds_wk18 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_18.csv"))
# odds_wk19 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_19.csv"))
# odds_wk20 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_20.csv"))
# odds_wk21 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_21.csv"))
# odds_wk22 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_22.csv"))

####################UPDATE THESE###############################
inst.picks = list(week_1, week_2, week_3, week_4, week_5, week_6, week_7, week_8 , week_9, week_10, week_11, week_12, week_13, week_14, week_15, week_16, week_17, week_18, week_19, week_20, week_21) #, week_22) #add in the additional weeks
# odds = rbind(odds_wk1, odds_wk2, odds_wk3, odds_wk4, odds_wk5, odds_wk6, odds_wk7, odds_wk8,
#              odds_wk9, odds_wk10, odds_wk11, odds_wk12) #add in the additional weeks
####################END OF UPDATE##############################

weeks = as.list(seq(1:current_week)) #creating a list of each week number
```

```{r read in scores clean data, include=FALSE}
#Cleaning Odds Data
# cl_odds = odds_cleaning(odds)

#Cleaning scores data
Scores = cleaning2(Scores)

#creating a list of winners for each week
winners = map(weeks, weekly_winners)

#creating a vector of this weeks winners
this_week = pull(winners[[length(winners)]])  

#Getting the number of games for each week
weekly_number_of_games = map_dbl(weeks, week_number_games)
```

```{r Group Predictions, include=FALSE}
#Creating the list of everyones predictions each week.
games = map(inst.picks, games_fn)

#Creating the prediction table.  
pred_table = map(games, pred_table_fn)

#Adding who won to the predictions
with_winners = map2(pred_table, winners, adding_winners)

#Creating results for each week.
results = map2(with_winners,weekly_number_of_games, results_fn)
```


```{r Displaying Group Results, echo=FALSE}
#Displaying the group results

inst_group_table = results[[length(results)]] %>% gt() %>% 
  cols_align(
    align = "center") %>% 
   tab_header(
    title = md("This Week's Predictions"),
    #subtitle = md(glue("Week {length(results)}"))
    ) %>% 
   tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(Correct),
      rows = Correct =="No"
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(Correct),
      rows = Correct =="Yes"
    )) %>% 
  tab_options(
    data_row.padding = px(3),
    container.height = "100%"
   )
```

```{r Weekly and season Group Results, include=FALSE}
# Printing the weekly and season win percentage     

#how many games correct, incorrect, and not picked each week
weekly_group_correct = map(results, weekly_group_correct_fn)  

#how many games were picked each week
weekly_games_picked = map2(weekly_group_correct, weekly_number_of_games, weekly_games_picked_fn)

#Calculating the number of correct picks for each week
weekly_group_correct_picks = map(weekly_group_correct, weekly_group_correct_picks_fn)

# Code to manually hard code in week where we get 0 games correct
# ##### Remove this line before next season 
weekly_group_correct_picks[[21]]=0

#Calculating weekly win percentage
weekly_win_percentage = map2(weekly_group_correct_picks, weekly_games_picked, weekly_win_percentage_fn)

#Calculating season win percentage
season_win_percentage = round(sum(unlist(weekly_group_correct_picks))/sum(unlist(weekly_games_picked)),4)

#Calculating number of games picked this season
season_games = sum(unlist(weekly_games_picked))

#calculating season wins
season_wins = sum(unlist(weekly_group_correct_picks))

#calculating the number of people who picked this week
Total = dim(inst.picks[[length(weeks)]])[1]
```

```{r plotting group results, include=FALSE}
#Previous Weeks
group_season_for_plotting = unlist(weekly_win_percentage) %>% as.data.frame() %>% 
  rename(`Win Percentage` = ".") %>% 
  add_column(Week = unlist(weeks))
```

```{r Plotting the group results, echo=FALSE}
inst_group_season_plot = group_season_for_plotting %>% 
ggplot(aes(x = as.factor(Week), y = `Win Percentage`))+
  geom_point()+
  geom_path(aes(x = Week))+
  ylim(c(0, 1)) +
  xlab("NFL Week") + 
  ylab("Correct Percentage")+
  ggtitle("Weekly Group Correct Percentage")+
  theme_classic()+
  theme(plot.title = element_text(hjust = 0.5, size = 18))
```

```{r beating cbs week, include=FALSE}
#Creating a list of correct percentages for each week.
cbs_weekly_percent = map(weeks, cbs_percent)

#Creating a list of how many cbs experts we beat each week.
cbs_experts_beat = map2(cbs_weekly_percent, weekly_win_percentage, experts_beat)

#Creating a list of how many cbs experts picked each week.  
cbs_experts_total = map(cbs_weekly_percent, experts_tot)
```

```{r beating cbs season, include=FALSE}
#Creating a list of correct percentages for each week.
cbs_season_percent = map(weeks, cbs_season_percent)

#Creating a list of how many cbs experts we beat each week.
cbs_experts_beat_season = map2(cbs_season_percent, season_win_percentage, experts_beat)

#Creating a list of how many cbs experts picked each week.  
cbs_experts_season_total = map(cbs_season_percent, experts_tot)
```

```{r beating ESPN week, include=FALSE}
#Creating a list of correct percentages for each week.
espn_weekly_percent = map(weeks, espn_percent)

#Creating a list of how many cbs experts we beat each week.
espn_experts_beat = map2(espn_weekly_percent, weekly_win_percentage, experts_beat)

#Creating a list of how many cbs experts picked each week.  
espn_experts_total = map(espn_weekly_percent, experts_tot)
```

```{r beating ESPN season, include=FALSE}
#Creating a list of correct percentages for each week.
espn_season_percent = map(weeks, espn_season_percent)

#Creating a list of how many cbs experts we beat each week.
espn_experts_beat_season = map2(espn_season_percent, season_win_percentage, experts_beat)

#Creating a list of how many cbs experts picked each week.  
espn_experts_season_total = map(espn_season_percent, experts_tot)
```

```{r individual results, include=FALSE}
#Creating a list of individual results for each week.
weekly_indiv = pmap(list(inst.picks, winners, weeks), indiv_weekly_pred)

#Combining each week into one dataframe and calculating percentage Correct for this week.  
full_season = weekly_indiv %>% reduce(full_join, by = "Name") %>% 
  mutate(Percent = round(pull(.[,ncol(.)]/weekly_number_of_games[[length(weekly_number_of_games)]]),4)) 

#Creating a dataframe with only the weekly picks
a = full_season %>% select(starts_with("Week"))

#Creating a vector of how many weeks each person picked over the season
tot_week = NULL
help = NULL
for (i in 1:dim(a)[1]){
  for(j in 1:length(a)){
    help[j] = ifelse(is.na(a[i,j])==T,0,1)
    tot_week[i] = sum(help)
  }
}

#Creating a vector of how many games each person picked over the season
tot_picks= NULL
help = NULL
for (i in 1:dim(a)[1]){
  for(j in 1:length(a)){
    help[j] = unlist(weekly_games_picked)[j]*ifelse(is.na(a[i,j])==T,0,1)
    tot_picks[i] = sum(help)
  }
}

#Creatign a vector of how many games each person picked correct over the season
tot_correct = NULL
help = NULL
for (i in 1:dim(a)[1]){
  tot_correct[i] = sum(a[i,], na.rm = T)
}

#adding how many weeks each person picked, season correct percentage, and adjusted season percentag to the data frame and sorting the data
indiv_disp = full_season %>% add_column(`Weeks Picked` = tot_week) %>%
  add_column(tot_correct)%>%
  add_column(tot_picks)%>%
  mutate(`Season Percent` = round(tot_correct/tot_picks,4))%>%
  mutate(`Adj Season Percent` = round(`Season Percent`*(tot_week/length(a)),4)) %>%
  select(-tot_correct, -tot_picks) %>%
  arrange(desc(Percent), desc(`Season Percent`)) %>%
  mutate(Percent = ifelse(is.na(Percent)==T, 0, Percent))
```


```{r individual percentages, include=FALSE}
#Calculating individual percentages for each week.
weekly_indiv_percent = map2(weekly_indiv, as.list(weekly_number_of_games), indiv_percent) %>% reduce(full_join, by = "Name")

weekly_indiv_percent_plot = weekly_indiv_percent %>% 
  pivot_longer(cols = starts_with("Week"), names_to = "Week", values_to = "Percent")%>%
  mutate(Percent = ifelse(is.na(Percent)==T, 0, Percent)) %>% 
  mutate(Week = as.factor(Week))

levels = NULL
for(i in 1:length(weeks)){
  levels[i] = glue("Week {i}")  
}

weekly_indiv_percent_plot = weekly_indiv_percent_plot %>%
  mutate(Week = factor(Week, levels))
```

```{r sparklines, include=FALSE}
#adding sparklines
plot_group = function(name, df){
  plot_object = 
    ggplot(data = df,
           aes(x = as.factor(Week), y=Percent, group = 1))+
    geom_path(size = 7)+
    scale_y_continuous(limits = c(0,1))+
    theme_void()+
    theme(legend.position = "none")
  return(plot_object)
}

sparklines = 
  weekly_indiv_percent_plot %>% 
  group_by(Name) %>% 
  nest() %>% 
  mutate(plot = map2(Name, data, plot_group)) %>% 
  select(-data)
  
indiv_disp_2 = indiv_disp %>% 
  inner_join(sparklines, by = "Name") %>% 
  mutate(`Season Trend` = NA)
```

```{r Printing Individual Table2, echo=FALSE}
# Printing the individual Table
indiv_table = indiv_disp_2 %>% gt() %>% 
  cols_align(
    align = "center") %>% 
   tab_header(
    title = md("Individual Results"),
    subtitle = md(glue("Week {length(weeks)}"))
    ) %>% 
   tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(Percent),
      rows = Percent<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(Percent),
      rows = Percent>.5
    )) %>% 
     tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`>.5
    ))%>% 
     tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`>.5
    )) %>% 
  tab_options(
    container.width = pct(100),
    data_row.padding = px(1),
    container.height = "100%"
   ) %>%
    tab_spanner(
    label = "Weekly # Correct",
    columns = starts_with(c("Week "))
  ) %>% 
  text_transform(
    locations = cells_body(c(`Season Trend`)),
    fn = function(x){
      map(indiv_disp_2$plot, ggplot_image, height = px(30), aspect_ratio = 4)
                 }) %>%
  cols_hide(c(plot))

indiv_winners = indiv_disp_2 %>% filter(Percent == max(Percent)) %>% select(Name) %>% pull() %>% paste(collapse = ", ")
indiv_season = indiv_disp_2 %>% filter(`Season Percent` == max(`Season Percent`)) %>% select(Name) %>% pull() %>% paste(collapse = ", ")
indiv_season_adj = indiv_disp_2 %>% filter(`Adj Season Percent` == max(`Adj Season Percent`)) %>% select(Name) %>% pull()%>% paste(collapse = ", ")
```

```{r Printing Season Leaderboard, echo=FALSE}
# Printing the Season Leaderboard
  
season_leaderboard_disp = indiv_disp_2 %>% select(Name, starts_with("Week ")) %>% 
  pivot_longer(starts_with("Week"),names_to = "Week", values_to = "Correct") %>% 
  group_by(Week) %>% 
  mutate(Correct = case_when(is.na(Correct)==T~0, 
                             TRUE~Correct)) %>% 
  mutate(Donut = case_when(Correct==max(Correct)~1,
                           TRUE~0))  %>% 
  ungroup() %>% 
  group_by(Name) %>% 
  summarise(`Donuts Won` = sum(Donut)) %>% 
  #mutate(`Donuts Won` = strrep("award,", Donuts)) %>% 
  right_join(.,indiv_disp_2) %>% 
  select(-starts_with("Week "), -Percent) %>% 
  mutate(`Season Rank` = min_rank(desc(`Season Percent`)),.before = Name) %>% 
  arrange(`Season Rank`) 
  
season_leaderboard = season_leaderboard_disp %>% 
  gt() %>% 
  cols_align(
    align = "center") %>% 
   tab_header(
    title = md("Season Leaderboard (Season Percent)"),
    subtitle = md(glue("Week {length(weeks)}"))
    ) %>% 
  # fmt_icon(
  #   columns = `Donuts Won`,
  #   fill_color = "gold",
  # ) %>%
  tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`>.5
    ))%>% 
     tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`>.5
    )) %>% 
  tab_options(
    container.width = pct(100),
    data_row.padding = px(1),
    container.height = "100%"
   ) %>%
    tab_spanner(
    label = "Weekly # Correct",
    columns = starts_with(c("Week "))
  ) %>% 
  text_transform(
    locations = cells_body(c(`Season Trend`)),
    fn = function(x){
      map(season_leaderboard_disp$plot, ggplot_image, height = px(30), aspect_ratio = 4)
                 }) %>%
  cols_hide(columns = c(plot))
```

```{r Printing Adj Season Leaderboard, echo=FALSE}
# Printing the Adj Season Leaderboard
  
adj_season_leaderboard_disp = indiv_disp_2 %>% select(Name, starts_with("Week ")) %>% 
  pivot_longer(starts_with("Week"),names_to = "Week", values_to = "Correct") %>% 
  group_by(Week) %>% 
  mutate(Correct = case_when(is.na(Correct)==T~0, 
                             TRUE~Correct)) %>% 
  mutate(Donut = case_when(Correct==max(Correct)~1,
                           TRUE~0))  %>% 
  ungroup() %>% 
  group_by(Name) %>% 
  summarise(`Donuts Won` = sum(Donut)) %>% 
  #mutate(`Donuts Won` = strrep("award,", Donuts)) %>% 
  right_join(.,indiv_disp_2) %>% 
  select(-starts_with("Week "), -Percent) %>% 
  mutate(`Season Rank` = min_rank(desc(`Adj Season Percent`)),.before = Name) %>% 
  arrange(`Season Rank`)

adj_season_leaderboard = adj_season_leaderboard_disp %>% 
  gt() %>% 
  cols_align(
    align = "center") %>% 
   tab_header(
    title = md("Season Leaderboard (Adjusted Season Percent)"),
    subtitle = md(glue("Week {length(weeks)}"))
    ) %>% 
  # fmt_icon(
  #   columns = `Donuts Won`,
  #   fill_color = "gold",
  # ) %>%
  tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`>.5
    ))%>% 
     tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`>.5
    )) %>% 
  tab_options(
    container.width = pct(100),
    data_row.padding = px(1),
    container.height = "100%"
   ) %>%
    tab_spanner(
    label = "Weekly # Correct",
    columns = starts_with(c("Week "))
  ) %>% 
  text_transform(
    locations = cells_body(c(`Season Trend`)),
    fn = function(x){
      map(adj_season_leaderboard_disp$plot, ggplot_image, height = px(30), aspect_ratio = 4)
                 }) %>%
  cols_hide(columns = c(plot))
```


```{r instructor formattable, echo=FALSE}
improvement_formatter <- 
  formatter("span", 
            style = x ~ formattable::style(
              font.weight = "bold", 
              color = ifelse(x > .5, "green", ifelse(x < .5, "red", "black"))),
             x ~ icontext(ifelse(x == max(x), "star", ""), x))

indiv_disp_3 = indiv_disp_2 %>% select(-plot)
indiv_disp_3$`Season Trend` = apply(indiv_disp_3[,2:(1+length(weeks))], 1, FUN = function(x) as.character(htmltools::as.tags(sparkline(as.numeric(x), type = "line", chartRangeMin = 0, chartRangeMax = 1, fillColor = "white"))))

indiv_table_2 = as.htmlwidget(formattable(indiv_disp_3, 
                                align = c("l", rep("c", NROW(indiv_disp_3)-1)),
              list(`Season Percent` = color_bar("#FA614B"),
              `Season Percent`= improvement_formatter,
              `Adj Season Percent`= improvement_formatter)))
              
indiv_table_2$dependencies = c(indiv_table_2$dependencies, htmlwidgets:::widget_dependencies("sparkline", "sparkline"))
```

```{r Plotting individual results over the season2, eval=FALSE, include=FALSE, out.width="100%"}
#Creating the individual plot.  
inst_indiv_plots = weekly_indiv_percent_plot %>% 
  ggplot(aes(x = factor(Week), y = Percent, color = Name))+
  geom_point()+
  geom_path(aes(x = as.factor(Week), y = Percent, color = Name, 
                group = Name))+
  ylim(c(0, 1)) +
  labs(x = "NFL Week", 
       y = "Correct Percentage", 
       title = "Weekly Individual Correct Percentage")+
  facet_wrap(~Name)+
  theme_classic()+
  theme(legend.position = "none",
        plot.title = element_text(hjust = 0.5, size = 18),
        axis.text.x=element_text(angle =45, vjust = 1, hjust = 1))
```

```{r data for data page}
inst.data = map2(inst.picks, weeks, disp_data) %>% bind_rows()
```


```{r fivethirtyeight}
inst_538 = map(results, five38) %>% unlist() %>% sum()
```

```{r pregame, eval=FALSE, include=FALSE}
#Predictions for the week

#Creating the list of group predictions each week.
games = map(inst.picks, games_fn)

#Creating the prediction table.  
pred_table = map(games, pred_table_fn)

#Printing table of instructor predictions
pred_table[[length(pred_table)]] %>% mutate(Game = row_number()) %>% 
  rename(`Votes For` = votes_for, `Votes Against` = votes_against) %>% 
  gt() %>% 
  cols_align(
    align = "center") %>% 
   tab_header(
    title = md("This Week's Predictions"),
    subtitle = md(glue("Week {length(weeks)}"))
    ) %>% 
   tab_options(
    data_row.padding = px(3)
   )
```

Group Predictions
==========================================================================

Sidebar {.sidebar} 
-------------------------------------
#### CBS Sports

<font size="4">

This week we beat or tied `r cbs_experts_beat[[length(weeks)]]` of `r cbs_experts_total[[length(weeks)]]` CBS Sports' Experts.

For the season we are currently beating or tied with `r cbs_experts_beat_season[[length(weeks)]]` of `r cbs_experts_season_total[[length(weeks)]]` CBS Sports' Experts.
 
 </font>


#### ESPN

<font size="4">

We also beat or tied `r espn_experts_beat[[length(weeks)]]` of `r espn_experts_total[[length(weeks)]]` ESPN Experts.
 
For the season we are currently beating or tied with `r espn_experts_beat_season[[length(weeks)]]` of `r espn_experts_season_total[[length(weeks)]]` ESPN Experts.

</font>

Row
--------------------------------------

### Win percentage for the week

```{r}
inst_rate <- weekly_win_percentage[[length(weekly_win_percentage)]]*100
gauge(inst_rate, min = 0, max = 100, symbol = '%', gaugeSectors(
  success = c(55, 100), warning = c(40, 54), danger = c(0, 39)
))
```

### Season Win Percentage

```{r}
inst_season <- season_win_percentage*100
gauge(inst_season, min = 0, max = 100, symbol = '%', gaugeSectors(
  success = c(55, 100), warning = c(40, 54), danger = c(0, 39)
))
```

### Games Correct
```{r}
valueBox(value = season_wins,icon = "fa-trophy",caption = "Correct Games this Season")
```

### Games Picked
```{r}
valueBox(value = season_games,icon = "fa-clipboard-list",caption = "Games Picked this Season")
```

### Number of predictions
```{r}
valueBox(value = Total,icon = "fa-users",caption = "Predictions this week")
```

Row
--------------------------------------

### 

```{r}
inst_group_table
```

### 

```{r}
ggplotly(inst_group_season_plot) %>% 
  layout(title = list(y = .93, xref = "plot"),
         margin = list(t = 40))
```

Individual Predictions
==========================================================================


Sidebar {.sidebar} 
-------------------------------------

#### Best Picks of the Week.

<font size="4">

 `r indiv_winners`
 
 </font>
 
#### Best Season Correct Percentage
<font size="4">

`r indiv_season`
 
 </font>

#### Best Adjusted Season Correct Percentage
<font size="4">

`r indiv_season_adj`

 * Adjusted season percentage accounts for the number of weeks picked.
 
 </font>

row {.tabset}
--------------------------------------

### Individual Table
```{r}
indiv_table
```

<!--
### Individual Table2

```{r, out.height="100%"}
indiv_table_2
```

-->

<!--

### Individual Plots
```{r, out.width="100%"}
#ggplotly(inst_indiv_plots)
```

-->

### Season Leaderboard
```{r, out.width="100%"}
season_leaderboard
```

### Adjusted Season Leaderboard
```{r, out.width="100%"}
adj_season_leaderboard
```

Data
==========================================================================

```{r}
datatable(
  inst.data, extensions = 'Buttons', options = list(
    dom = 'Blfrtip',
    buttons = c('copy', 'csv', 'excel', 'pdf', 'print'),
    lengthMenue = list( c(10, 25, 50, 100, -1), c(10, 25, 50, 100, "All") )
  )
)
```